package IO_;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;

/**
 * 以字节为单位 读取文件
 */
public class Io05 {
    public static void main1(String[] args) {
        try(InputStream inputStream=new FileInputStream("./test.exe")){
            while(true){
                int n=inputStream.read();
                if(n==-1){
                    break;
                }
                //以标准字节输出流的形式打印输出
                System.out.printf("%c",n);
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    public static void main2(String[] args) {
        //打开文件
        try(InputStream inputStream=new FileInputStream("./test.exe")){
            while(true){//循环读取文件
                byte[] buffer=new byte[1024];//1024：自定义的一次最多读取文件的字节数
                int n=inputStream.read(buffer);//读文件到buffer字节数组中
                if(n==-1){
                    break;
                }
                //打印输出
                for(int i=0;i<n;i++){
                    System.out.printf("%c",buffer[i]);
                }
            }

        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    public static void main3(String[] args) {
        //打开文件
        try(InputStream inputStream=new FileInputStream("./test.exe")){
            while(true){//循环读取文件
                byte[] buffer=new byte[4];//1024：自定义的一次最多读取文件的字节数
                int n=inputStream.read(buffer,0,4);//读文件到buffer字节数组中
                                        // 从0位置开始读取，每次读1024个字节
                if(n==-1){
                    break;
                }
                //将读到的n个字节转换成字符串
                String s=new String(buffer,0,n);
                System.out.println(s);
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    public static void main(String[] args) {
        try(InputStream inputStream=new FileInputStream("./test.exe")){
            Scanner scan=new Scanner(inputStream);//从文件读取内容
           while(scan.hasNext()){
               String s=scan.next();
               System.out.println(s);
           }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}
